TP6文件上传、导入导出

您所在的位置:网站首页 tp6 service 无法引入vendor TP6文件上传、导入导出

TP6文件上传、导入导出

2023-09-27 15:20| 来源: 网络整理| 查看: 265

文章目录 一、数据分页1、普通分页2、下拉数据分页 二、文件上传1、配置信息2、单文件上传3、多文件上传4、缩略图 三、Excel导入导出1、安装扩展2、实例 今日目标

掌握在ThinkPHP6框架中下拉数据分页的使用

掌握在ThinkPHP6框架中文件上传、多文件上传、缩略图

掌握在ThinkPHP6框架中Excel导入、导出

一、数据分页 1、普通分页 2、下拉数据分页 二、文件上传 1、配置信息 2、单文件上传 3、多文件上传 4、缩略图

安装

composer require topthink/think-image

实例运用: 生成缩略图 使用thumb方法生成缩略图,例如:

# 第一步、打开需要生成缩略图的文件 $data['goods_logo'] = Filesystem::disk('public')->putFile( 'image', $data['goods_logo']); /** * 打开一个图片文件 * @param \SplFileInfo|string $file * @return Image */ $image = \think\Image::open('admin/'.$data['goods_logo']); /** save() * 保存图像 * @param string $pathname 图像保存路径名称 * @param null|string $type 图像类型 * @param int $quality 图像质量 * @param bool $interlace 是否对JPEG类型图像设置隔行扫描 * @return $this */ // 按照原图的比例生成一个最大为150*150的缩略图并保存为thumb.png /** * 生成缩略图 * * @param integer $width 缩略图最大宽度 * @param integer $height 缩略图最大高度 * @param int $type 缩略图裁剪类型 * * @return $this */ $image->thumb(150,150)->save('admin/'.$data['goods_logo']); # 剪切 $image->thumb(150,150,\think\Image::THUMB_CENTER)->save('admin/'.$data['goods_logo']); // 反转 // 对图像进行以x轴进行翻转操作 $image->flip()->save('admin/'.$data['goods_logo']); //对图像进行以y轴进行翻转操作 $image->flip(\think\image::FLIP_Y)->save('./filp_image.png'); # 给原图左上角添加水印并保存water_image.png /** * 添加水印 * * @param string $source 水印图片路径 * @param int $locate 水印位置 * @param int $alpha 透明度 * @return $this */ $image->water('admin/image/20211214/80fe7f53f875f746ff4b09c66e4b13b9.png',\think\Image::WATER_NORTHWEST)->save('admin/'.$data['goods_logo']); # 给原图剧中添加文字水印并保存water_image.png /** * 图像添加文字 * * @param string $text 添加的文字 * @param string $font 字体路径 * @param integer $size 字号 * @param string $color 文字颜色 * @param int $locate 文字写入位置 * @param integer $offset 文字相对当前位置的偏移量 * @param integer $angle 文字倾斜角度 * * @return $this * @throws ImageException */ $image->text('添加的字体内容',getcwd().'/static/font/1.ttf',18,'#00FF7F ',\think\Image::WATER_CENTER)->save('admin/'.$data['goods_logo']);

getcwd — 取得当前工作目录

三、Excel导入导出 PHPExcel是国外人开发的一个php处理excel插件,用来操作Office Excel 文档的一个PHP类库,它基于微软的Openxml标准和PHP语言。 可以使用它来读取、写入不同格式的电子表格。整体来说是一个不错的Excel操作类。 本文档搜集了两种文档,一个是PHPExcel中文手册,一个是全英文PHPExcel开发手册!

知识点文档:https://www.kancloud.cn/chunyu/php_basic_knowledge 参考文档地址:https://www.cnblogs.com/wuxiumu/p/13390044.html 参考英文文档地址:https://phpspreadsheet.readthedocs.io/en/latest/

1、安装扩展

查看本地PHP是否安装zip扩展 命令查看 php -m | grep zip

composer require phpoffice/phpspreadsheet 2、实例

单独使用

public function test(){ $data = [ ['title1' => '111', 'title2' => '222'], ['title1' => '111', 'title2' => '222'], ['title1' => '111', 'title2' => '222'] ]; $title = ['第一行标题', '第二行标题']; // Create new Spreadsheet object $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); // 方法一,使用 setCellValueByColumnAndRow //表头 //设置单元格内容 foreach ($title as $key => $value) { // 单元格内容写入 $sheet->setCellValueByColumnAndRow($key + 1, 1, $value); } $row = 2; // 从第二行开始 foreach ($data as $item) { $column = 1; foreach ($item as $value) { // 单元格内容写入 $sheet->setCellValueByColumnAndRow($column, $row, $value); $column++; } $row++; } // 方法二,使用 setCellValue //表头 //设置单元格内容 $titCol = 'A'; foreach ($title as $key => $value) { // 单元格内容写入 $sheet->setCellValue($titCol . '1', $value); $titCol++; } $row = 2; // 从第二行开始 foreach ($data as $item) { $dataCol = 'A'; foreach ($item as $value) { // 单元格内容写入 $sheet->setCellValue($dataCol . $row, $value); $dataCol++; } $row++; } ob_end_clean(); // Redirect output to a client’s web browser (Xlsx) header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="01simple.xlsx"'); header('Cache-Control: max-age=0'); // If you're serving to IE 9, then the following may be needed header('Cache-Control: max-age=1'); // If you're serving to IE over SSL, then the following may be needed header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified header('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header('Pragma: public'); // HTTP/1.0 $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx'); $writer->save('php://output'); exit; }

封装方法:



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3